using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Sys;
using net_work.Data.Entity.Sys;
using net_work.Data.VO.Sys;

namespace net_work.IRepository.Sys;

public interface ITeacherRepository : IRepository<Teacher>
{
    /// <summary>
    /// 插入教师
    /// </summary>
    /// <param name="teacherAddRequest">插入教师</param>
    /// <returns>插入的教师Id</returns>
    Task<long> InsertAsync(TeacherAddRequest teacherAddRequest);

    /// <summary>
    /// 更新教师信息
    /// </summary>
    /// <param name="teacherUpdateRequest">更新教师信息</param>
    /// <returns>是否成功</returns>
    Task<bool> UpdateAsync(TeacherUpdateRequest teacherUpdateRequest);

    /// <summary>
    /// 获取教师分页
    /// </summary>
    /// <param name="request">分页请求</param>
    /// <returns>教师分页结果</returns>
    Task<PagedResult<TeacherResult>> GetTeacherPagedAsync(PagedRequest request);
}